/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package elaborate.vwbe;

import elaborate.vwbe.scripting.ScriptEngine;
import elaborate.vwbe.scripting.ScriptLanguage;
import elaborate.vwbe.scripting.ScriptingException;
import java.util.Iterator;
import org.w3c.dom.Node;

/**
 * VWBEApplication is a running instance of VWBE-simulated
 * HTML application.
 * @author lendle
 */
public interface VWBEApplication {
    public void init(VWBEContext context);
    public Object invokeScriptFunction(ScriptLanguage language, String functionName, Object... args) throws ScriptingException;
    public Node applyH2X(Node node) throws Exception;
    public Iterator<String> getDeclaredScriptFunctions(ScriptLanguage language);
    public ScriptEngine getScriptEngine(ScriptLanguage language) throws ScriptingException;
}
